package com.lin.blog.service;

import com.lin.blog.entity.UserLike;
import com.lin.utils.Result;

import java.util.List;

public interface IUserLikedService {

    /**
     * 保存点赞记录
     * @param userLike
     * @return
     */
   public Result saveUserLike(UserLike userLike);

 /**
  * 保存取消点赞
  * @param userLike
  * @return
  */
 public Result saveUnUserLike(UserLike userLike);


    /**
     * 批量保存点赞记录
     * @param list
     * @return
     */
    public Result saveAllUserLike(List<UserLike> list);


    /**
     * 根据被点赞人的id查询点赞列表（即查询都谁给这个人点赞过）
     * @param likedUserId 被点赞人的id
     * @param pageNum
     * @param pageSize
     * @return
     */
    public Result getLikedListByLikedUserId(Long likedUserId,Integer pageNum, Integer pageSize);

    /**
     * 根据文章ID查看谁点过赞
     * @param likedArticleId 文章Id
     * @param pageNum
     * @param pageSize
     * @return
     */
    public Result getLikedListByLikedArticleId(Long likedArticleId,Integer pageNum, Integer pageSize);


    /**
     * 通过被点赞人和点赞人id查询是否存在点赞记录
     * @param likedUserId
     * @param likedArticleId
     * @return
     */
    public UserLike getByLikedUserIdAndLikedArticleId(Long likedUserId,Long likedArticleId);

    /**
     * 将Redis里的点赞数据存入数据库中
     */
    void transLikedFromRedis2DB();

    /**
     * 将Redis中的点赞数量数据存入数据库
     */
    void transLikedCountFromRedis2DB();


}
